home *** CD-ROM | disk | FTP | other *** search
- func Gui_Component NewGatewayConnection()
- {
- var Gui_Component pthis;
- var Gui_dtGateway pdtData;
-
- pthis = NewObject(iUserGatewayInterface);
- pdtData = new Gui_dtGateway;
-
- SetData(pthis,pdtData);
-
- return pthis;
- }
-
- func void fnGatewayDistantConnect(szx _szIp)
- {
- var Gui_Component pthis;
- var Gui_dtGateway pdtData;
-
- pthis = GetThis();
- pdtData = GetData(pthis);
-
- if(!pdtData.pGatewaySocket)
- {
- pdtData.szIp = _szIp;
- pdtData.iPort = g_iGatewayPort;
-
- pdtData.pGatewaySocket = NetClient_Create(_szIp, g_iGatewayPort, pthis);
- g_pGatewaySocket = pdtData.pGatewaySocket;
- }
- else
- {
- print("Already connected to gateway.\n");
- }
- }
-
-
- // database reception
- func void fnGTDatabase_Data(szx _szDatabaseName)
- {
- var Gui_Component pthis,parent;
- var Gui_dtGateway pdtData;
-
- pthis = GetThis();
- pdtData = GetData(pthis);
-
- print(_szDatabaseName + " database from gateway received\n" );
-
- if (strcmp(_szDatabaseName,"GatewayDB")==0)
- {
- pdtData.iDatabaseIndex = Database_Constructor("GatewayDB");
- Database_Receive(pdtData.iDatabaseIndex,"GatewayDB",pdtData.pGatewaySocket);
-
- g_stGateway.iJoinGame_szIP = Join_Constructor(pdtData.iDatabaseIndex, "GAT_games.szIP");
- g_stGateway.iJoinGame_iPort = Join_Constructor(pdtData.iDatabaseIndex, "GAT_games.iPort");
-
-
- parent = GetParent(pthis);
- println ("gateway db " + itoa(pdtData.iDatabaseIndex));
- if(parent)
- parent<<GatewayDBOk(pthis,pdtData.iDatabaseIndex);
-
- }
- else
- {
- print("unknown database\n");
- }
- }
-
- // database sync
- func void fnGTDatabase_Sync(szx _szDatabaseName)
- {
- var Gui_Component pthis,parent;
- var Gui_dtGateway pdtData;
-
- print(_szDatabaseName + " database update from gateway received\n" );
-
- pthis = GetThis();
- pdtData = GetData(pthis);
-
- if (strcmp(_szDatabaseName,"GatewayDB")==0)
- {
- Database_ReceiveSynchronization(pdtData.iDatabaseIndex,_szDatabaseName,pdtData.pGatewaySocket);
-
- parent = GetParent(pthis);
- if(parent)
- parent<<GatewayDBRefresh(pthis,pdtData.iDatabaseIndex);
- }
- else
- {
- print("unknown database\n");
- }
- }
-
- // user connection
- func void fnGatewayConnectCB()
- {
- print("connected to gateway\n");
- }
-
- // user disconnection
- func void fnGatewayDisconnectCB()
- {
- var Gui_Component pthis,parent;
- var Gui_dtGateway pdtData;
-
- print("disconnected to gateway\n");
-
- pthis = GetThis();
- pdtData = GetData(pthis);
-
- if (pdtData.iDatabaseIndex)
- Database_Destructor(pdtData.iDatabaseIndex);
- pdtData.iDatabaseIndex = 0;
-
- if (g_stGateway.iJoinGame_szIP)
- Join_Destructor(g_stGateway.iJoinGame_szIP);
- g_stGateway.iJoinGame_szIP = 0;
-
- if (g_stGateway.iJoinGame_iPort)
- Join_Destructor(g_stGateway.iJoinGame_iPort);
- g_stGateway.iJoinGame_iPort = 0;
-
- pdtData.pGatewaySocket = NULL;
- g_pGatewaySocket = NULL;
-
- parent = GetParent(pthis);
- if(parent)
- parent<<GatewayDBUnvalid(pthis);
-
- }